#ifndef _WX_PRIVATE_OVERLAY_H_
#define _WX_PRIVATE_OVERLAY_H_

#include "wx/overlay.h"

#ifdef wxHAS_NATIVE_OVERLAY

#if defined(__WXMAC__)
#include "wx/mac/carbon/private/overlay.h"
#elif defined(__WXDFB__)
#include "wx/dfb/private/overlay.h"
#else
#error "unknown native wxOverlay implementation"
#endif

#else // !wxHAS_NATIVE_OVERLAY

#include "wx/bitmap.h"

class wxWindow;

// generic implementation of wxOverlay
class wxOverlayImpl {
  public:
    wxOverlayImpl();
    ~wxOverlayImpl();
    void Reset();
    bool IsOk();
    void Init( wxWindowDC* dc, int x, int y, int width, int height );
    void BeginDrawing( wxWindowDC* dc );
    void EndDrawing( wxWindowDC* dc );
    void Clear( wxWindowDC* dc );
  private:
    wxBitmap m_bmpSaved ;
    int m_x ;
    int m_y ;
    int m_width ;
    int m_height ;
    #if defined(__WXGTK__) || defined(__WXMSW__)
    wxWindow* m_window ;
    #endif
} ;

#endif // wxHAS_NATIVE_OVERLAY/!wxHAS_NATIVE_OVERLAY

#endif // _WX_PRIVATE_OVERLAY_H_
